import {Prefab, Node, instantiate} from 'cc';
import {CombinationHandler} from "db://assets/Scripts/MVC/Monster/CombinationHandler";
import {PoolManager} from "db://assets/Scripts/framework/PoolManager";

/**
 * 六个敌人策略，V字型
 */
export class SixPolicy implements CombinationHandler {

    /**
     * 六个敌人
     *
     * @param prefab 敌人预制体
     * @param parent 父节点
     */
    combination(prefab: Prefab, parent: Node): Node[] {
        // 创建敌人列表
        const monsterNodes: Node[] = [];

        // 创建敌人
        for (let i = 0; i < 6; i++) {
            // 创建敌人节点
            let monsterNode = PoolManager.getInstance().getNode(prefab, parent);
            // 设置父节点
            monsterNode.setParent(parent);
            // 添加至敌人列表
            monsterNodes.push(monsterNode);
        }

        // 设置位置
        monsterNodes[0].setPosition(0, 0, -10);
        monsterNodes[1].setPosition(-2, 0, -12);
        monsterNodes[2].setPosition(2, 0, -12);
        monsterNodes[3].setPosition(-4, 0, -14);
        monsterNodes[4].setPosition(0, 0, -14);
        monsterNodes[5].setPosition(4, 0, -14);

        // 返回敌人列表
        return monsterNodes;
    }
}